John Ralls [Mon, 7 Nov 2011 22:25:08 +0000 (14:25 -0800)]
[Quartz Bug 663182] NSImage throws an exception from _gtk_quartz_create_image_from_pixbuf()"
If a zero-sized NSImage calls lockfocus it throws an exception. Make sure that the image isn't zero-sized before calling lockfocus, and log a warning and return NULL if it is zero-sized.
Have the quartz version of gtk_drag_begin_idle return FALSE if the returned image is NULL.
John Ralls [Mon, 7 Nov 2011 21:48:03 +0000 (13:48 -0800)]
Revert "[Quartz Bug 663182] NSImage throws an exception from _gtk_quartz_create_image_from_pixbuf()". Utterly screwed up. Sorry.
This reverts commit
8216324e4b13f0349ed3c0f854d41e6b32d1f0cb.
and commit
3243e6955cd4014345170fdd9246a13eacad86dd.
John Ralls [Mon, 7 Nov 2011 21:18:14 +0000 (13:18 -0800)]
Fix accidental paste error in
8216324
John Ralls [Mon, 7 Nov 2011 21:04:59 +0000 (13:04 -0800)]
[Quartz Bug 663182] NSImage throws an exception from _gtk_quartz_create_image_from_pixbuf()
If _gtk_quartz_create_image_from_pixbuf is given a pixbuf with size 0, 0
or which produces an NSImage with size 0.0, 0.0, it throws an exception
which Gtk doesn't handle.
your changes. Lines starting
Michael Natterer [Mon, 7 Nov 2011 19:09:00 +0000 (20:09 +0100)]
gdk: exclude MOD1 from the virtual modifier mapping
which effectively nails down the MOD1 == ALT assumption that is valid
in all other parts of GTK+. After the modifier abstraction fixes for
OSX, the virtual mapping is now (correctly) used in more places, and
caused problems with the common default PC keyboard layout on X11 that
colocates ALT and META on the same key.
Morten Welinder [Mon, 7 Nov 2011 18:10:24 +0000 (13:10 -0500)]
Print preview: make cancel work
This makes cancels of a print preview work in the same way it
works for non-previews, i.e., the operation stops at the next
page boundary.
https://bugzilla.gnome.org/show_bug.cgi?id=662160
Michael Natterer [Sun, 6 Nov 2011 22:12:57 +0000 (23:12 +0100)]
quartz: handle recursive CFRunLoops
Fixes e.g. crashs when dropping from finder.
Turn the "getting_events" boolean into a counter to handle poll_func()
being called recursively, and track the loop depth correctly by
changing its counter before bailing out in run_loop_observer_callback().
This way we reallocate our autorelease pool at the right time, and
don't kill memory that is still in use by outer run loops.
Also drain, not release the pool, just for some defensive forward
compatibility.
(cherry picked from commit
ef9a92d225f7257f56c3a8b7b28ddd9a734e38e6)
Torsten Schönfeld [Sat, 15 Oct 2011 17:18:52 +0000 (19:18 +0200)]
gtk: add annotations for some GtkRadio* constructors
Since constructors like gtk_radio_button_new_from_widget take an
instance of their type as the first argument, the gi scanner interprets
them as methods.
https://bugzilla.gnome.org/show_bug.cgi?id=661858
Kristian Rietveld [Sun, 6 Nov 2011 09:36:00 +0000 (10:36 +0100)]
quartz: use get_toplevel_from_ns_event in one more place
Fixup needed due to refactoring in GTK+-3.0.
Kristian Rietveld [Sun, 6 Nov 2011 08:34:39 +0000 (09:34 +0100)]
quartz: make gdk_quartz_osx_version conform to coding style
Kristian Rietveld [Sun, 6 Nov 2011 08:33:50 +0000 (09:33 +0100)]
quartz: make test_resize () conform to coding style
Kristian Rietveld [Sun, 6 Nov 2011 08:25:16 +0000 (09:25 +0100)]
quartz: Process motion events within windows bounds without window set
When an NSEvent does not have the window field set, we already assumed
the event was not for us and discarded it. But for NSMouseMoved events
we now make an exception, because such events generated after
using/clicking the main menu bar have the window field set to NULL while
the application window still has focus.
We used to experience a loss of motion events after using the menu bar,
this could be seen in buttons that stopped prelighting and first
clicks often being ignored unless you clicked somewhere else first.
These issues are fixed by this patch.
Kristian Rietveld [Sat, 5 Nov 2011 21:53:22 +0000 (22:53 +0100)]
quartz: Factor out toplevel from NSEvent code into function
Kristian Rietveld [Sat, 5 Nov 2011 21:43:17 +0000 (22:43 +0100)]
quartz: Separate out screen_point conversion in function
Reduces code duplication and confusion.
Kristian Rietveld [Sat, 5 Nov 2011 21:34:41 +0000 (22:34 +0100)]
quartz: remove unused variable
Florian Müllner [Tue, 25 Oct 2011 13:42:59 +0000 (15:42 +0200)]
menuitem: Always treat submenus as popup
Submenus are not actually attached to a menubar, but styling them
as if they were imposes some problems (at least with Adwaita).
Just using GDK_WINDOW_TYPE_HINT_POPUP_MENU for submenus instead
fixes the issue.
https://bugzilla.gnome.org/show_bug.cgi?id=662691
Akira TAGOH [Sat, 5 Nov 2011 05:47:46 +0000 (01:47 -0400)]
Allow fallback for input method modules
Accept a :-separated list of module names in GTK_IM_MODULE and
the corresponding setting, to deal a bit better with broken
situations.
https://bugzilla.gnome.org/show_bug.cgi?id=603559
Torsten Schönfeld [Sat, 15 Oct 2011 17:34:06 +0000 (19:34 +0200)]
gtk: add annotations for some GtkSymbolicColor constructors
https://bugzilla.gnome.org/show_bug.cgi?id=661859
Rui Matos [Sat, 5 Nov 2011 05:36:52 +0000 (01:36 -0400)]
x11: Fix window manager change detection
Since the wmspec_check_window doesn't have a corresponding GdkWindow we can't
rely on the get_event_window() return value to get the XID from. Just use the
XID from the XEvent directly.
https://bugzilla.gnome.org/show_bug.cgi?id=662953
Benjamin Moody [Sat, 5 Nov 2011 05:26:48 +0000 (01:26 -0400)]
Mark gtk_dialog_new_with_buttons as NULL-terminated
https://bugzilla.gnome.org/show_bug.cgi?id=663073
Matthias Clasen [Sat, 5 Nov 2011 05:23:06 +0000 (01:23 -0400)]
Pop up context menus at the right device
When multiple pointers are in play, we need to be careful
not to loose track of the device between receiving a button
press and popping up a menu.
https://bugzilla.gnome.org/show_bug.cgi?id=663396
Matthias Clasen [Sat, 5 Nov 2011 05:12:50 +0000 (01:12 -0400)]
GtkWindow: Use new begin_resize_drag api
We have an event, so the correct thing to do is to pass
the device into the function that we are calling. GDK
just grew a variant that takes a device, for this purpose.
https://bugzilla.gnome.org/show_bug.cgi?id=663444
Matthias Clasen [Sat, 5 Nov 2011 05:12:26 +0000 (01:12 -0400)]
Wayland: Adapt to GdkWindowImpl api change
Matthias Clasen [Sat, 5 Nov 2011 05:12:07 +0000 (01:12 -0400)]
Broadway: Adapt to GdkWindowImpl API change
Matthias Clasen [Sat, 5 Nov 2011 05:11:50 +0000 (01:11 -0400)]
Quartz: Adapt to GdkWindowImpl api change
Matthias Clasen [Sat, 5 Nov 2011 05:11:18 +0000 (01:11 -0400)]
win32: Adapt to GdkWindowImpl api change
Matthias Clasen [Sat, 5 Nov 2011 05:10:16 +0000 (01:10 -0400)]
Add device-taking variants of begin_resize/move_drag
This was one of the last places where display->core_pointer was
used in non-deprecated code paths.
Matthias Clasen [Sat, 5 Nov 2011 03:38:11 +0000 (23:38 -0400)]
GdkDeviceManager: some reshuffling of docs
Bastien Nocera [Fri, 4 Nov 2011 16:39:12 +0000 (16:39 +0000)]
tests: Disable accel test until fixed
Bastien Nocera [Thu, 3 Nov 2011 18:53:19 +0000 (18:53 +0000)]
gtk: Add test program for keycode parsing
https://bugzilla.gnome.org/show_bug.cgi?id=662755
Bastien Nocera [Thu, 3 Nov 2011 15:39:57 +0000 (15:39 +0000)]
gtk: Add accel with keycode parsing functions
Which handle accelerators with keycodes as well as keyvals,
so we can use it in applications that use GtkCellRendererAccel's
"Other" mode of operations (namely gnome-control-center and
gnome-settings-daemon).
https://bugzilla.gnome.org/show_bug.cgi?id=662755
Matthias Clasen [Fri, 4 Nov 2011 03:58:46 +0000 (23:58 -0400)]
Fix make check
Colin Walters [Thu, 3 Nov 2011 19:27:16 +0000 (15:27 -0400)]
introspection: Include deprecated headers for scanner too
https://bugzilla.gnome.org/show_bug.cgi?id=663345
Piotr Drąg [Wed, 2 Nov 2011 21:12:53 +0000 (22:12 +0100)]
Updated POTFILES.in
Alexander Larsson [Wed, 2 Nov 2011 13:46:53 +0000 (14:46 +0100)]
Make sure we only show icons in the file selector bookmarks toolbar
This looked really bad in non-gnome settings where default is to
show text too.
Matthias Clasen [Wed, 2 Nov 2011 12:28:34 +0000 (08:28 -0400)]
Revert a change to the plug/socket headers
I was trying to avoid including gtk.h here, but this breaks
some of our tests, and there's a good chance that 3rd party
code also relies on this include.
Matthias Clasen [Wed, 2 Nov 2011 11:33:21 +0000 (07:33 -0400)]
Remove some more uses of gdk_window_get_pointer
Matthias Clasen [Wed, 2 Nov 2011 11:20:28 +0000 (07:20 -0400)]
Remove one instance of gdk_window_get_pointer
Matthias Clasen [Wed, 2 Nov 2011 11:08:53 +0000 (07:08 -0400)]
Remove various internal uses of deprecated api
Matthias Clasen [Wed, 2 Nov 2011 11:08:13 +0000 (07:08 -0400)]
Don't warn about deprecations in deprecated/
Matthias Clasen [Wed, 2 Nov 2011 10:45:10 +0000 (06:45 -0400)]
Move deprecated gtkwidget style api to gtkstyle
Matthias Clasen [Wed, 2 Nov 2011 05:21:49 +0000 (01:21 -0400)]
Don't warn about deprecations in deprecated/
We know we are deprecated here, no need to warn.
Matthias Clasen [Wed, 2 Nov 2011 05:15:21 +0000 (01:15 -0400)]
Move gtkstyle and gtkrc to deprecated/
This required a somewhat more substantial include reshuffling.
Some typedefs have been moved to gtkiconfactory.h and to
gtksettings.h.
Matthias Clasen [Wed, 2 Nov 2011 02:52:32 +0000 (22:52 -0400)]
Move wholly deprecated files to a subdirectory
Also install their headers to a subdirectory.
Matthias Clasen [Wed, 2 Nov 2011 03:50:19 +0000 (23:50 -0400)]
Move gtk_draw_insertion_cursor out of gtkstyle.[hc]
This function does not use GtkStyle at all and is not deprecated.
Matthias Clasen [Wed, 2 Nov 2011 02:52:56 +0000 (22:52 -0400)]
Drop DISABLE_DEPRECATED guards here, too
Matthias Clasen [Wed, 2 Nov 2011 02:35:57 +0000 (22:35 -0400)]
Don't use *DISABLE_DEPRECATED guards
Instead define GDK_DISABLE_DEPRECATION_WARNINGS where appropriate.
Matthias Clasen [Wed, 2 Nov 2011 02:35:05 +0000 (22:35 -0400)]
Don't use *_SINGLE_INCLUDES defines
GLib now outlaws single includes always, anyway.
Matthias Clasen [Wed, 2 Nov 2011 02:14:45 +0000 (22:14 -0400)]
Don't use *_DISABLE_DEPRECATED
Instead of undefining the DISABLE_DEPRECATED guards,
define the GDK_DISABLE_DEPRECATION_WARNING macro where needed.
Also replace INCLUDES by AM_CPPFLAGS to shut up automake.
Matthias Clasen [Wed, 2 Nov 2011 02:05:29 +0000 (22:05 -0400)]
Don't use deprecated GValue api
Benjamin Otte [Fri, 28 Oct 2011 20:18:31 +0000 (13:18 -0700)]
gtk-demo: Don't use deprecated code
Benjamin Otte [Fri, 28 Oct 2011 20:17:52 +0000 (13:17 -0700)]
tests: Disable fontselection deprecation warnings
This test tests deprecated code...
Benjamin Otte [Fri, 28 Oct 2011 20:12:02 +0000 (13:12 -0700)]
tooltip: Don't use deprecated API
Benjamin Otte [Fri, 28 Oct 2011 17:58:51 +0000 (10:58 -0700)]
tooltip: Remove unused variables
Benjamin Otte [Fri, 28 Oct 2011 17:23:05 +0000 (10:23 -0700)]
iconview: Keep the device for dnd autoscroll
This is necessary to query the device's coordinates when doing the
scrolling.
Benjamin Otte [Fri, 28 Oct 2011 16:26:37 +0000 (09:26 -0700)]
table: Define GDK_DISABLE_DEPRECATION_WARNINGS
Benjamin Otte [Fri, 28 Oct 2011 16:26:28 +0000 (09:26 -0700)]
handlebox: Define GDK_DISABLE_DEPRECATION_WARNINGS
Benjamin Otte [Fri, 28 Oct 2011 16:20:03 +0000 (09:20 -0700)]
fontsel: Define GDK_DISABLE_DEPRECATION_WARNINGS
Benjamin Otte [Fri, 28 Oct 2011 15:34:30 +0000 (08:34 -0700)]
gdk: Move a bunch of deprecated code to a new file
The new file defines GDK_DISABLE_DEPRECATION_WARNINGS so it can happily
use deprecated APIs.
This commit moves those functions there that use deprecated functions
and currently cause warnings.
With this commit, GDK compiles without deprecation warnings.
Benjamin Otte [Fri, 28 Oct 2011 15:13:03 +0000 (08:13 -0700)]
display: Don't use deprecated functions
When synthesizing crossing events, actually query the position of the
device we care about instead of using the core pointer every time.
Benjamin Otte [Fri, 28 Oct 2011 15:04:11 +0000 (08:04 -0700)]
x11: Do fallback resize without deprecated functions
After consulting with Carlos, we agreed that it should be enough to grab
the core pointer instead of doing a full grab. If it turns out that's
wrong, we need to adapt the internal API for resizes to take the device
doing the resize.
Benjamin Otte [Fri, 28 Oct 2011 14:08:29 +0000 (07:08 -0700)]
x11: Don't use deprecated function
Use the replacement instead.
Benjamin Otte [Thu, 13 Oct 2011 07:26:37 +0000 (00:26 -0700)]
tests: Remove unused variables
Benjamin Otte [Thu, 6 Oct 2011 01:48:29 +0000 (18:48 -0700)]
box: Fix includes so hbox/vbox compile warning-free
And make sure most of the code is included before undeffing deprecated
code.
Matthias Clasen [Wed, 2 Nov 2011 01:22:14 +0000 (21:22 -0400)]
Don't use deprecated Pango api
Matthias Clasen [Wed, 2 Nov 2011 01:18:27 +0000 (21:18 -0400)]
Don't use g_value_set_char
Matthias Clasen [Wed, 2 Nov 2011 01:13:35 +0000 (21:13 -0400)]
Don't use deprecated Pango api
Matthias Clasen [Wed, 2 Nov 2011 01:11:04 +0000 (21:11 -0400)]
GDK: Adapt to GLib thread api changes
Matthias Clasen [Wed, 2 Nov 2011 01:06:09 +0000 (21:06 -0400)]
GtkSearchEngineSimple: adapt the GLib thread api changes
Cosimo Cecchi [Tue, 1 Nov 2011 00:33:41 +0000 (20:33 -0400)]
iconview: layout items immediately when setting a GtkTreeModel
As the draw handler expects the items to be laid out already, we cannot
queue a layout here to avoid a race condition with the resize that is
queued immediately after, which in turn would lead to a segfault later
in the paint_item() implementation.
https://bugzilla.gnome.org/show_bug.cgi?id=663138
Emmanuele Bassi [Thu, 27 Oct 2011 18:03:11 +0000 (19:03 +0100)]
radiotoolbutton: Fix the introspection annotations
Everything that deals with a group has to be fixed.
Plus, we have NULL checks without allowing NULL arguments; since NULL
arguments are perfectly fine, we can relax the argument checks.
https://bugzilla.gnome.org/show_bug.cgi?id=662870
Emmanuele Bassi [Thu, 27 Oct 2011 17:51:38 +0000 (18:51 +0100)]
radiotoolbutton: Fix the annotation for get_group()
Use the same annotation used by gtk_radio_button_get_group().
https://bugzilla.gnome.org/show_bug.cgi?id=662870
Bastien Nocera [Thu, 27 Oct 2011 10:09:26 +0000 (11:09 +0100)]
gtk: Fix XIGrabKeycode usage
A modifier of "0" is still a modifier and must be submitted normally.
A num_modifiers of 0 is essentially a noop in the server.
As mentioned by Peter Hutterer <peter.hutterer@who-t.net>
https://bugzilla.gnome.org/show_bug.cgi?id=662839
Matthias Clasen [Thu, 27 Oct 2011 01:51:36 +0000 (21:51 -0400)]
Print dialog: small keynav improvement
Mark the page range entry and the copies spin button as
activates-default.
https://bugzilla.gnome.org/show_bug.cgi?id=662670
Bastien Nocera [Wed, 26 Oct 2011 11:47:07 +0000 (12:47 +0100)]
tests: Store keycode in tree for testaccel
Useful for testing keys without a keysym.
Bastien Nocera [Tue, 25 Oct 2011 13:36:47 +0000 (14:36 +0100)]
gdk: Translate keyboard brightness keys
https://bugzilla.gnome.org/show_bug.cgi?id=662628
Bastien Nocera [Tue, 25 Oct 2011 13:34:27 +0000 (14:34 +0100)]
gdk: Make gen-keyname-table.pl work again
keyname-table.h was modified by hand, and gen-keyname-table.pl
couldn't be used to generate that file again.
https://bugzilla.gnome.org/show_bug.cgi?id=662628
Matthias Clasen [Wed, 26 Oct 2011 03:20:37 +0000 (23:20 -0400)]
Update grid tests to match
The previous fix changed some test results here.
Matthias Clasen [Wed, 26 Oct 2011 03:18:21 +0000 (23:18 -0400)]
Fix gtk_grid_attach_next_to
The function did not behave as intended when @sibling is NULL.
Also add an example to the docs to clarify the intended behaviour.
Michael Natterer [Tue, 25 Oct 2011 20:19:11 +0000 (22:19 +0200)]
gtkrc.key.mac: add Command-cursor text navigation
and some emacs-ish Control bindings that work in native widgets.
Patch from Michael Hutchinson.
(cherry picked from commit
ccf12f7b406ecbd8f0c26b0e6dc86d4593144dab)
Michael Natterer [Tue, 25 Oct 2011 15:01:25 +0000 (17:01 +0200)]
gtkrc.key.mac: remove half the file, it was an accidential double paste
(cherry picked from commit
79a92f99a9dbdc7b1a651b0e8665807bd89c6632)
Matthias Clasen [Tue, 25 Oct 2011 14:22:15 +0000 (10:22 -0400)]
Post-release version bump
Halfway to 666 !
Matthias Clasen [Tue, 25 Oct 2011 13:15:50 +0000 (09:15 -0400)]
Bump version to 3.3.2
Matthias Clasen [Tue, 25 Oct 2011 11:37:32 +0000 (07:37 -0400)]
Updates
Matthias Clasen [Fri, 14 Oct 2011 19:52:24 +0000 (15:52 -0400)]
Fix more test breakage
Benjamin Otte [Mon, 3 Oct 2011 15:05:40 +0000 (17:05 +0200)]
a11y: Hack around infinite loops in parent setting
This is kind of a hack to get rid of infinite loops that occur when
child accessibles try to set their parent upon creation but the parent
accessible creates its children in the initialize vfunc. Because in that
case, the parent will not have an accessible set when the child tries to
access it, because it is still initializing itself. Which will cause a
new accessible to be created.
https://bugzilla.gnome.org/show_bug.cgi?id=660687
Matthias Clasen [Fri, 14 Oct 2011 15:43:40 +0000 (11:43 -0400)]
Fix make check
Somebody committed a behaviour change that broke his own
tests...tsk, tsk.
Matthias Clasen [Fri, 14 Oct 2011 15:23:43 +0000 (11:23 -0400)]
Add a css parser test for transparent
Cosimo Cecchi [Mon, 24 Oct 2011 20:31:50 +0000 (16:31 -0400)]
printunixdialog: fix a GtkTable->GtkGrid typo
Code was treating the GtkScrolledWindow as a grid, not the grid itself.
Matthias Clasen [Mon, 24 Oct 2011 17:50:00 +0000 (13:50 -0400)]
Fix handling of GtkCellRendererProgress::inverted
We were setting the wrong field.
https://bugzilla.redhat.com/show_bug.cgi?id=747761
Cosimo Cecchi [Mon, 24 Oct 2011 17:12:21 +0000 (13:12 -0400)]
notebook: update tab area allocation when switching page
When the active page is switched, it's important
gtk_notebook_pages_allocate() is called after the bulk of
gtk_notebook_real_switch_page() is run, as the former allocates a
different space according to the currently active tab, which is set by
the latter.
gtk_notebook_pages_allocate() already calls gtk_notebook_redraw_tabs()
when the allocation changes, so just move its call down to
gtk_notebook_real_switch_page() to fix the bug.
https://bugzilla.gnome.org/show_bug.cgi?id=662629
Dieter Verfaillie [Sun, 23 Oct 2011 19:43:16 +0000 (21:43 +0200)]
win32: fix unterminated #ifdef error
By removing all ifdefs as gtk/gtkwin32.c is only built
on win32 anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=662481
Rui Matos [Sat, 22 Oct 2011 16:38:29 +0000 (17:38 +0100)]
tooltip: only update shape if the window is realized
If we get a composited-changed signal before the tooltip is ever realized we
have nothing to do.
This actually prevents a segfault in maybe_update_shape() because calling
gtk_widget_get_window() on a non-realized widget returns NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=662467
Michael Natterer [Sun, 23 Oct 2011 11:57:07 +0000 (13:57 +0200)]
gtk: move _gtk_modules_has_mixed_deps() to gtkmodlesprivate.h
and remove gtkmainprivate.h completely.
Michael Natterer [Sat, 22 Oct 2011 06:48:13 +0000 (08:48 +0200)]
gtk: clean up the private horror
- add gtkmodulesprivate.h and move stuff there from gtkprivate.h
- add gtkprivate.c and move stuff there from gtkmain.c
- add gtkwin32.c and move stuff there from gtkmain.c
- don't redefine GTK_DATADIR and friends in gtkprivate.h
- have _gtk_get_datadir() and friends on all platforms
- remove the horrid hacks where gtkprivate.h can't be included,
or must be included later due to redefinition of the compile-time
directories
Michael Natterer [Sat, 22 Oct 2011 21:08:32 +0000 (23:08 +0200)]
gtkquartz: don't free the string returned by get_bundle_path()
It's statically allocated.
(cherry picked from commit
c040b03c2e32a773a4d9cf4019050c2f8a5b91ce)
Michael Natterer [Sat, 22 Oct 2011 19:32:49 +0000 (21:32 +0200)]
quartz: don't return FALSE from GdkDevice::query_state()
Not finding a child window to return is not a failure.
Hendrik Knackstedt [Fri, 21 Oct 2011 22:38:28 +0000 (00:38 +0200)]
Updated German translation
Cosimo Cecchi [Fri, 21 Oct 2011 20:30:34 +0000 (16:30 -0400)]
GtkRange: use the right widget for coordinate translation
GtkRange needs to check if its allocation intersects with the resize
grip allocation (trimming its own allocation if it does).
In order to do that, it needs to translate its allocation into window
coordinates, and before that, find the window to whose the allocation
is relative; code goes all the way finding the right parent widget, but
then doesn't actually use it when translating the coordinates, leading
to using the wrong rectangles for the intersection check.
https://bugzilla.gnome.org/show_bug.cgi?id=662308
Sjoerd Simons [Fri, 21 Oct 2011 13:55:50 +0000 (15:55 +0200)]
Fix document generation in out of tree builds
https://bugzilla.gnome.org/show_bug.cgi?id=661032